package com.terrence.filemgr.mgr;

import java.io.InputStream;

import com.terrence.filemgr.FileMgrException;
import com.terrence.filemgr.mgr.vo.DirVo;


/**
 * 
 * @author wuchuang
 *
 * 2016年8月5日 上午10:55:16
 * 
 * 文件服务接口
 */
public interface IFileMgr {
	
	/**
	 * 
	 * 自行定义上传文件的相对目录和文件全名
	 * @param inputStream
	 * @param fileRelativeDir
	 * @param fileName
	 * @return
	 * @throws FileMgrException
	 */
	public String upload(InputStream inputStream,String fileRelativeDir,String fileName) throws FileMgrException;
	
	/**
	 * 
	 * 由系统自动生成文件路径和文件名
	 * @param inputStream
	 * @param fileType
	 * @return
	 * @throws FileMgrException
	 */
	public String upload(InputStream inputStream,String fileType) throws FileMgrException;
	
	/**
	 * 
	 * 下载文件
	 * @param fileRelativePath
	 * @return
	 * @throws FileMgrException
	 */
	public InputStream download(String fileRelativePath) throws FileMgrException;
	
	/**
	 * 
	 * 删除文件
	 * @param fileRelativePath
	 * @return
	 * @throws FileMgrException
	 */
	public Boolean remove(String fileRelativePath) throws FileMgrException;

	public void createDir(String relativePath,String dirName) throws FileMgrException;
	
	public Boolean isDirValid(String dirPath) throws FileMgrException;
	
	public DirVo getDirStructures(String relativePath) throws FileMgrException;
}
